package com.baor.service.impl;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baor.dao.VipDao;
import com.baor.dao.VipTagDao;
import com.baor.domain.UserTagVo;
import com.baor.service.VipTagService;
import com.baor.utils.AjaxResult;
import com.github.yulichang.wrapper.MPJLambdaWrapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

@Service
public class VipTagServiceIpml implements VipTagService {

    @Autowired
    private VipTagDao vipTagDao;

    @Autowired
    private VipDao vipDao;

    //添加会员标签
    @Override
    public AjaxResult<?> addVipTag(UserTagVo userTagVo) {
        MPJLambdaWrapper<UserTagVo> objectMPJLambdaWrapper = new MPJLambdaWrapper<>();
        objectMPJLambdaWrapper.selectAll(UserTagVo.class)
                .eq(UserTagVo::getUserTagSort, userTagVo.getUserTagSort())
                .eq(UserTagVo::getSiteId, userTagVo.getSiteId());
        UserTagVo userTagVo1 = vipTagDao.selectOne(objectMPJLambdaWrapper);
        if (userTagVo1 != null) {
            return AjaxResult.error("标签已存在");
        }
        int row = vipTagDao.insert(userTagVo);
        if (row > 0) {
            return AjaxResult.success("添加成功");
        } else {
            return AjaxResult.error("添加失败");
        }
    }

    //详情
    @Override
    public AjaxResult<?> tagInfo(UserTagVo userTagVo) {
        UserTagVo userTagInfo = vipTagDao.selectById(userTagVo.getUserTagId());
        return AjaxResult.success(userTagInfo);
    }

    //会员标签列表
    @Override
    public AjaxResult<?> vipTagList(Map<String, Object> params) {
        params.put("pageIndex", (int) params.get("pageSize") * ((int) (params.get("pageIndex")) - 1));
        params.put("pageSize", params.get("pageSize"));
        Map<String, Object> res = new HashMap<>();
        res.put("userTagList", vipTagDao.vipTagList(params));
        res.put("pageCount", vipTagDao.pageCount(params));
        return AjaxResult.success(res);
    }

    //删除
    @Override
    public AjaxResult<?> deleteVipTag(UserTagVo userTagVo) {
        userTagVo.setDelFlag("1");
        int i = vipTagDao.updateById(userTagVo);
        if (i > 0) {
            return AjaxResult.success("删除成功");
        } else {
            return AjaxResult.error("删除失败");
        }
    }

    @Override
    public AjaxResult<?> updateVipTag(UserTagVo userTagVo) {
        int row = vipTagDao.updateById(userTagVo);
        if (row > 0) {
            return AjaxResult.success("修改成功");
        } else {
            return AjaxResult.error("修改失败");
        }
    }

}
